-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Importing existing content. Work in progress. #1
- Loading branch information
1 parent
b5cb5d4
commit 39d1696
Showing
5 changed files
with
220 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,53 @@ | ||
# crump | ||
Content Re-Use and Maintainability Partnership | ||
# Content as Code | ||
|
||
**Content as Code** is a partnership to support content re-use and improve maintainability of content. | ||
|
||
It is formed of implementers in organisations publishing free/libre and open source content and wanting to have lightweight (post-CMS) approaches to content management that focus on the author experience (as well as editor and translator experience). | ||
|
||
## Goals | ||
|
||
To develop workflows and technology in order to **make content authoring and management benefit from software engineering collaboration best practices**. | ||
|
||
In particular by: | ||
- Using **Git** for version control | ||
- Using **Mardown** and enhanced flavors of Markdown for authoring | ||
- Developing better tools focusing on **author experience** | ||
- Developing pathways for **content contribution and review** | ||
- Enabling **translation workflows** | ||
- Support **static website generation** and interoperability with **content management systems** | ||
- Enable content reuse | ||
|
||
# Roadmap | ||
|
||
- [Kick off](https://github.com/iilab/contentascode-site/milestones) | ||
|
||
# Reference Implementation | ||
|
||
This repo contains the source (```master``` branch) and generated (```gh-pages``` branch) site which is building http://iilab.github.io/contentascode-site | ||
|
||
It is a reference implementation for the crump workflow for Github/Github Pages/Prose/Transifex and also depends on: | ||
- https://github.com | ||
- https://prose.io | ||
- https://transifex.com | ||
|
||
Other implementations based on self-hosted software Gitlab/Jekyll/Prose will be developed. | ||
|
||
## Install | ||
|
||
- You might need a ruby version manager (such as rvm) | ||
- You might need to ```bundle update``` | ||
|
||
## Build | ||
|
||
To build the site: | ||
|
||
- Run ```bundle exec jekyll build``` (to generate the site in ```/_site```) or ```bundle exec jekyll serve``` (optionally with the ```--watch``` flag to rebuild automatically when a source markdown file changes) | ||
|
||
## Notes | ||
|
||
- This site was built by reusing the [using the Hyde](https://github.com/poole/hyde) theme. | ||
- Minor changes were made such as: | ||
- adding the ```gems``` key/values | ||
- removing the ```relative_permalinks: true``` | ||
- kramdown's auto table of contents | ||
- adding source and edit links |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
layout: page | ||
title: About | ||
--- | ||
|
||
In the below diagram the following approach is proposed: | ||
|
||
- Content Partners : Adhere to content guidelines in order to facilitate interoperability at the editorial level (adaptation of content to various audience - profile, region... - and learning situations - training, self-paced, mobile,...). | ||
- Curation Layer: A content catalogue helps to understand and coordinate where content is available and where it is missing. It will also aim at collecting feedback metrics from publication partners (aggregated and anonymized). | ||
- Curation Tools: Will help draw from the Content Ecosystem to generate content ready for publication (for Open Mentoring this would generate StoryPath compatible Content Packs, alongside Markdown files ready for publication on the wen and generation as a printed guide / for others it might mean importing content into a CMS) | ||
- Publication Layer: Will consist of the layer which presents and makes the content accessible to the Learning End User. | ||
|
||
 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
--- | ||
layout: page | ||
title: Partners | ||
--- | ||
|
||
Projects that have expressed interest in this approach are: | ||
|
||
- Security in a Box (Tactical Tech) | ||
- Umbrella (Security First) | ||
- Story Maker (FPU, Scalio, Guardian Project) | ||
- Level Up (Internews) | ||
- TOTEM (Greenhost) | ||
- Advocacy Assembly (Small Media) | ||
- Panic Button, Open Mentoring (iilab) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
layout: page | ||
title: Status | ||
--- | ||
|
||
Follow the progress of the Content as Code partnership: | ||
- By commenting and | ||
- By watching the github repository | ||
- By joining us at the Internet Freedom Festivate |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
--- | ||
layout: page | ||
title: Technology | ||
--- | ||
|
||
* TOC | ||
{:toc} | ||
|
||
## Components | ||
|
||
### Authoring | ||
|
||
test | ||
|
||
### Content and Media Import | ||
|
||
### Translation | ||
|
||
### Synchronisation | ||
|
||
## Existing Approaches | ||
|
||
- SIAB uses Drupal and aims to publish or manage content as markdown files. Possibly evolving towards a static Markdown files, possibly evolving to provide a Content API. https://github.com/securityinabox/siabguide | ||
- Umbrella is a native Android app, the content is generated from csv files into an asset database (probably sqlite) in the APK. https://github.com/securityfirst/Umbrella_android | ||
- Story Maker is an Android app using the StoryPath (formerly liger) library to load content packs stored as YAML files. There is a transifex workflow but I'm not sure about how the content is authored. https://github.com/StoryMaker/content-packs https://github.com/StoryMaker/storypath | ||
- EFF uses Drupal. The repo doesn't seem to have the content of the guide. https://github.com/EFForg/ssd | ||
- Panic Button is a native Android app using a custom made JSON file parser to generate its interface (similar but less mature concept than StoryPath). Content is authored in Prose as Markdown and Jekyll generates the JSON files. There's an ongoing effort to interop with Transifex. | ||
- Digital First Aid Kit's source is a git repository of markdown files. Not sure about how the website and printed versions are generated. https://github.com/RaReNet/DFAK | ||
- Level Up uses Drupal. No source code or content I could find. | ||
|
||
### Summary | ||
|
||
| | Content Format | Content Authoring | Content Publication | Content Delivery | | ||
|--------------|----------------|-------------------|------------------------------|----------------------------------| | ||
| SIAB | Wyswiwyg | Drupal | Drupal | Drupal Web | | ||
| Umbrella | Markdown | Manual | SQL -> SQlite DB | Native Android | | ||
| Story Maker | YAML | Git / tx | YAML -> Zipped JSON (Python) | Native Android (StoryPath/Liger) | | ||
| SSD | ? | Drupal | Drupal | Drupal Web | | ||
| Panic Button | Markdown | Prose / tx | md -> JSON (Jekyll) | Native Android (custom) | | ||
|
||
## Interoperability approaches | ||
|
||
|
||
| | Interop Maturity | Rationale | | ||
|-----------------------|------------------|----------------------------------------| | ||
| SIAB | ++ | Markdown in Git / Close to Content API | | ||
| Umbrella | - | CSV / Not Git | | ||
| Story Maker | +++ | Spec and Library | | ||
| SSD | - | No content source ? | | ||
| Panic Button | + | Markdown in Git | | ||
| Digital First Aid Kit | + | Markdown in Git | | ||
| Level Up | -- | No content source / No repo | | ||
|
||
### Security in a Box. | ||
|
||
Export from SIAB: | ||
|
||
- Ideally access Drupal Nodes through a granular API (at the level of sections, community snippets), keep track of upstream last modified date and translation dependencies to flag downstream update needs and generate/transform into static source for content packs. | ||
|
||
Import in SIAB: | ||
|
||
- Drupal Remote Entity or Web Service Data module consuming a statically generated | ||
|
||
Integration Path | ||
|
||
- Possible to reuse Open Mentoring/StoryPath approach to generate content packs from SIAB to create a SIAB Mobile App. | ||
|
||
### Umbrella. | ||
|
||
Export from Umbrella: | ||
|
||
- Directly by transforming source csv files | ||
|
||
Import in Umbrella: | ||
|
||
- Exporting Open Mentoring Content Packs as Umbrella compatible CSV | ||
|
||
Integration Path | ||
|
||
- Umbrella could reuse a Content Pack approach and propose to StoryPath to integrate Checklist in the spec | ||
|
||
### Story Maker | ||
|
||
Export/Import from Story Maker | ||
|
||
- Compatibility with OBB Content Pack binaries should mean that they can just be an additional source to download from. | ||
|
||
Integration Path | ||
|
||
- Working with StoryPath to upstream different approaches to content management and developing NativeScript/Cordova plugins might pay off. | ||
|
||
### Panic Button | ||
|
||
To be discussed but if the Panic Button help section was rewritten to allow loading StoryPath content packs that would probably be a good thing. | ||
|
||
### TOTEM | ||
|
||
Interop with practical tests is a strong lead. | ||
|
||
### Open Mentoring | ||
|
||
#### Content Requirements | ||
|
||
- Git managed static content approach | ||
- Transifex workflow | ||
- Known interop path with *all* content ecosystem | ||
|
||
#### Tech Options | ||
|
||
Format | ||
|
||
- Markdown with YAML Frontmatter in smaller chunks than StoryMaker Content Packs (to allow markdown bodies in cards) | ||
|
||
Authoring | ||
|
||
- Prose | ||
|
||
Publication | ||
|
||
- Maybe Liger content pack interop? | ||
|
||
Delivery | ||
|
||
- Native Android with StoryPath/Liger and different git static content publication scripts. | ||
- NativeScript App with StoryPath/Liger | ||
- NativeScript App with StoryPath/Liger compatible approach | ||
- Corbova App with StoryPath/Liger | ||
- Corbova App with StoryPath/Liger compatible approach | ||
|
||
See [Technical Research Wiki Page](https://github.com/openmentoring-content/wiki) for more about platform choice. |