Git Product home page Git Product logo

newtools-documentationreader's Introduction

NewTools-DocumentationReader

A first version of tools to manage Pharo documentation (book and help) to archive. Better look at NewTools-DocumentBrowser project.

newtools-documentationreader's People

Contributors

ducasse avatar kasperosterbye avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newtools-documentationreader's Issues

Export existing help into markdown format.

I have made an exporter which can convert the existing help into microdown format.
As this is a one time thing, it is not clear this code should be permanently in the image. The tool is therefore included here as a file-in, which overwrites some parts of the existing help system.

HelpSystem-Core.st.zip

Post integration of the new implementation

Kasper I'm fixing several points:

  • I added a dev branch and we should do PR on this branch so that after once this is ok we can merge into master (= into pharo).
  • We should not use Smalltalk ui icons but self iconNamed:

I'm trying to fix the class comments but I cannot.

  • how do we decide to internalize the file? because I do not get when I decide it.

  • I have no idea what is openOnCustomHelp: aDescription there is no comment and no sender.

  • openPharoRepo just breaks on me.

  • open
    "Open a HelpBrowser on the internalized docs."

    ^ self error: 'We need to define a default starting point'

I have no idea what is a default starting point and how to do it so the error does not help the user at all.

  • the following raises a DNU:
openBrowser
	<script>
	StHelpBrowserPresenter openTopic: self githubTopics 

after I press reset, it is working.
Before I was using StHelpBrowser open ....

Refactor StHelpBrowserPresenter

I believe StHelpBrowserPresenter actually does two things:

  • composes directories and md-files into a topic structure
  • presents a topic structure where the leafs are microdown

I believe it would be beneficial to split this into two classes according to those two roles.

In addition, StHelpBrowserPresenter caches previous files using the memory file system. I believe the caching is necessary - in particular for the StGithubDocFolderBuilder (PR #7) which is rather slow.

Rather than caching files, StHelpBrowserPresenter could cache the topic tree, independent of how it was obtained.

buildMethodTopicsOn: topic for: aClass should use MDBuilder and not forge MD by hand

buildMethodTopicsOn: topic for: aClass

	| stream methodComment |
	stream := String new writeStream.
	aClass selectors asSortedCollection do: [:selector | 
		methodComment := (aClass>>selector) comment.
		addMethodsWithoutComment | methodComment notNil ifTrue: [ 
			stream 
				nextPutAll: '`';
				nextPutAll: aClass name;
				nextPutAll: '>>#';
				nextPutAll: selector asString;
				nextPutAll: '`';
				cr.		
		methodComment ifNil: [ methodComment := 'Method has no comment.' ].
		stream 
			nextPutAll: '_"'; 
			nextPutAll: methodComment; nextPutAll: '"_';cr;cr ] ].
	
	topic addNode: (MicroDownParser new parse: stream contents).

Project suffers from some of the font errors

I will investigate.

@Ducasse Perhaps the MicrodownPresenter stuff should move here, the presenter solves the issues, makes it all look nicer, and it makes sense to use "DocumentationReader" as a platform for more advanced support for showing microdown documents.

If this is the case I will make a PR that moves it here, and make sure the examples run.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.